\chapter{Use Case}
\section{Use Case Generale}
\label{Use Case Generale}

\begin{figure}[H]
\begin{center}
\includegraphics[scale=0.8]{UseCase/Principale.eps}
\caption{Use Case Generale}
\end{center}
\end{figure}

\subsection{Crea file}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che desidera creare un nuovo file.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema permette la creazione di un file.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Azione intrapresa dall'utente. Una volta terminato, se il file esiste ed è corretto si passa al caso d'uso ``Visualizza''.\\
\hline
\textbf{Precondizioni:}\\
\hline
L'utente seleziona la posizione del file ed il nome.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il file viene visualizzato.\\
\hline
\end{tabular}\\

\subsection{Crea progetto}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che desidera creare un nuovo progetto.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema permette la creazione di un progetto.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Azione intrapresa dall'utente. Una volta terminato, verrà creata una cartella nel file system che conterrà tutti i file creati dall'utente relativi a quel progetto. Si passa al caso d'uso ``Crea file''.\\
\hline
\textbf{Precondizioni:}\\
\hline
L'utente seleziona la posizione del progetto ed il nome.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il file viene visualizzato.\\
\hline
\end{tabular}\\

\subsection{Visualizza}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
Nessun attore coinvolto.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema visualizza in maniera opportuna il contenuto del file. La visualizzazione dipende dall'estensione del file e può avere più di una rappresentazione.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
L'azione è conseguenza dello stato ``Crea file'', ``Crea Progetto'' o ``Apre file''. Una volta terminato, si passa al caso ``Modifica file''.\\
\hline
\textbf{Precondizioni:}\\
\hline
Deve esserci un file che possa essere visualizzato.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il file può ora essere modificato.\\
\hline
\end{tabular}\\

\subsection{Modifica file}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che vuole modificare il file.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema permette la modifica del file visualizzato. In particolare fornisce vari strumenti per rendere la modifica più facile (per maggiori informazioni vedi Use Case ``Configura IDE'').\\
\hline
\textbf{Flusso di eventi:}\\
\hline
L'azione è conseguenza dello stato ``Visualizza''.\\
\hline
\textbf{Precondizioni:}\\
\hline
Deve essere presente un file visualizzato.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il file è stato modificato.\\
\hline
\end{tabular}\\

\subsection{Apre file}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che desidera aprire un file esistente.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema deve facilitare l'apertura di un file tramite una maschera mediante la quale è possibile selezionare il file dal proprio file system. Il file indicato potrebbe non essere tra i tipi di file riconosciuti dal software (un file binario o un file di testo che non appartenga ai tipi gestiti dal programma).\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Azione intrapresa dall'utente. Una volta terminato, se il file esiste ed è corretto si passa al caso d'uso ``Visualizza''. Altrimenti viene segnalato l'errore.\\
\hline
\textbf{Precondizioni:}\\
\hline
L'utente seleziona un file da aprire.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Se il file è corretto viene visualizzato, altrimenti viene segnalato l'errore.\\
\hline
\end{tabular}\\

\subsection{Configura IDE}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che desidera personalizzare le impostazioni del sistema.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Viene fornito all'utente finale, un metodo per modificare le impostazioni del sistema.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
L'azione è intrapresa dall'utente.\\
\hline
\textbf{Precondizioni:}\\
\hline
L'utente seleziona la relativa maschera dalla gui principale.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Le impostazioni devono essere subito applicate se possibile, o eventualmente dopo un riavvio del software (in questo caso va indicato il necessario riavvio).\\
\hline
\end{tabular}\\

\section{Use Case Crea file}
\label{Use Case Crea file}

\begin{figure}[H]
\begin{center}
\includegraphics[scale=0.9]{UseCase/Creafile.eps}
\caption{Use Case Crea file} 
\end{center}
\end{figure}

\subsection{Creazione file}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale avvia la creazione di un nuovo file.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema permette la creazione di un file solo dopo che i tre stati ``Assegna nome'', ``Assegna estensione'' e ``Posizione file'' sono soddisfatti.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Conseguenza dell'azione dell'utente.\\
\hline
\textbf{Precondizioni:}\\
\hline
I tre stati ``Assegna nome'', ``Assegna estensione'' e ``Posizione file'' sono soddisfatti.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il file viene creato e passa allo use case ``Visualizza''.\\
\hline
\end{tabular}\\

\subsection{Assegna nome}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che inserisce il nome del file.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema deve facilitare l'inserimento del nome del file tramite una gui adeguata.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Conseguenza dell'azione dell'utente. Insieme agli stati ``Assegna estensione'', ``Posizione file'' concorre alla creazione di un file.\\
\hline
\textbf{Precondizioni:}\\
\hline
L'utente deve intraprendere l'azione di creazione file.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il file viene creato non appena anche gli altri stati ``Assegna estensione'', ``Posizione file'' sono soddisfatti.\\
\hline
\end{tabular}\\

\subsection{Assegna estensione}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che seleziona o inserisce tipo del file, mediante l'assegnazione di un estensione.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema deve facilitare l'inserimento o la selezione del tipo di file. Il tipo di file può essere deciso tramite l'apposita estensione nel nome del file o tramite la selezione del tipo in un menu. Tra i due metodi quello prevalente è il primo.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Conseguenza dell'azione dell'utente. Insieme agli stati ``Assegna nome'', ``Posizione file'' concorre alla creazione di un file.\\
\hline
\textbf{Precondizioni:}\\
\hline
L'utente deve intraprendere l'azione di creazione file.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il file viene creato non appena anche gli altri stati ``Assegna nome'', ``Posizione file'' sono soddisfatti.\\
\hline
\end{tabular}\\

\subsection{Posizione file}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che seleziona la posizione del file.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema deve facilitare la selezione della posizione del file tramite una apposita gui che permetta in maniera facile e intuitiva di navigare nel file system.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Conseguenza dell'azione dell'utente. Insieme agli stati ``Assegna nome'', ``Assegna estensione'' concorre alla creazione di un file.\\
\hline
\textbf{Precondizioni:}\\
\hline
L'utente deve intraprendere l'azione di creazione file.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il file viene creato non appena anche gli altri stati ``Assegna nome'', ``Assegna estensione'' sono soddisfatti.\\
\hline
\end{tabular}\\

\section{Use Case Crea Progetto}
\label{Use Case Crea Progetto}

\begin{figure}[H]
\begin{center}
\includegraphics[scale=0.9]{UseCase/CreaProgetto.eps}
\caption{Use Case Crea Progetto} 
\end{center}
\end{figure}


\subsection{Creazione Progetto}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale avvia la creazione di un nuovo progetto.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema permette la creazione di un progetto solo dopo che i tre stati ``Assegna nome'', ``Assegna tipo'' e ``Posizione Progetto'' sono soddisfatti. In particolare un progetto deve contenere tutte le meta-informazioni necessarie allo svolgimento dei sui compiti.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Conseguenza dell'azione dell'utente.\\
\hline
\textbf{Precondizioni:}\\
\hline
I tre stati ``Assegna nome'', ``Assegna tipo'' e ``Posizione Progetto'' sono soddisfatti.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Vengono creati i file e cartelle necessari per il Progetto e si passa allo use case ``Visualizza''.\\
\hline
\end{tabular}\\

\subsection{Assegna nome}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che inserisce il nome del progetto.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema deve facilitare l'inserimento del nome del progetto tramite una gui adeguata.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Conseguenza dell'azione dell'utente. Insieme agli stati ``Assegna tipo'', ``Posizione Progetto'' concorre alla creazione di un file di progetto.\\
\hline
\textbf{Precondizioni:}\\
\hline
L'utente deve intraprendere l'azione di ``Creazione progetto''.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Vengono creati i file e cartelle necessari non appena anche gli altri stati ``Assegna tipo'', ``Posizione Progetto'' sono soddisfatti.\\
\hline
\end{tabular}\\

\subsection{Assegna tipo}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che inserisce il tipo del Progetto.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema deve facilitare la selezione del tipo del progetto. Devono essere presenti diversi tipi di progetto (detti \textit{modelli} o \textit{template}) tra cui l'utente può scegliere.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Conseguenza dell'azione dell'utente. Insieme agli stati ``Assegna nome'', ``Posizione Progetto'' concorre alla creazione di un file.\\
\hline
\textbf{Precondizioni:}\\
\hline
L'utente deve intraprendere l'azione di ``Creazione del progetto''.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Vengono creati i file e cartelle necessari non appena anche gli altri stati ``Assegna nome'', ``Posizione Progetto'' sono soddisfatti.\\
\hline
\end{tabular}\\

\subsection{Posizione Progetto}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che seleziona la posizione del Progetto.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema deve facilitare la selezione della posizione del Progetto tramite una apposita gui che permetta in maniera facile e intuitiva di navigare nel file system.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Conseguenza dell'azione dell'utente. Insieme agli stati ``Assegna nome'', ``Assegna tipo'' concorre alla creazione di un file.\\
\hline
\textbf{Precondizioni:}\\
\hline
L'utente deve intraprendere l'azione di ``Creazione del progetto''.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Vengono creati i file e cartelle necessari non appena anche gli altri stati ``Assegna nome'', ``Assegna tipo'' sono soddisfatti.\\
\hline
\end{tabular}\\


\section{Use Case Apri file}
\label{Use Case Apri file}

\begin{figure}[H]
\begin{center}
\includegraphics[scale=1]{UseCase/Aprifile.eps}
\caption{Use Case Apri file} 
\end{center}
\end{figure}

\subsection{Apertura file}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che apre un file.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema apre il file selezionato.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Conseguenza della selezione della posizione del file. Successivamente il file viene visualizzato.\\
\hline
\textbf{Precondizioni:}\\
\hline
Deve essere stato selezionato un file esistente.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il file selezionato deve venire visualizzato a video.\\
\hline
\end{tabular}\\

\subsection{Localizza file}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale che seleziona la posizione del file o del progetto.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema deve facilitare la selezione della posizione del file o del progetto tramite una apposita gui che permetta in maniera facile e intuitiva di navigare nel file system.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Conseguenza dell'azione dell'utente. Lo stato successivo è l'apertura del file.\\
\hline
\textbf{Precondizioni:}\\
\hline
L'utente deve intraprendere l'azione di ``Apertura file''.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Lo stato passa in ``Apertura file''.\\
\hline
\end{tabular}\\

\section{Use Case Visualizza file}
\label{Use Case Visualizza file}

\begin{figure}[H]
\begin{center}
\includegraphics[scale=0.7]{UseCase/Visualizzafile.eps}
\caption{Use Case Visualizza file} 
\end{center}
\end{figure}

\subsection{Imposta colorazione}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale tramite gui può decidere la colorazione del testo.\\
Il sottosistema esterno ``Configurazione Sistema'' mediante il quale \`e possibile configurare la modalit\`a di colorazione.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema deve permettere la modifica dei colori del testo e dello sfondo del testo, permettendo di impostare colori diversi a seconda del tipo di parole (keyword, valori, ecc...) e del tipo di file (xml, dtd, xquery, ecc...).\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Il testo visualizzato viene colorato in base alle impostazione dell'utente.\\
\hline
\textbf{Precondizioni:}\\
\hline
Deve essere presente un testo su cui applicare la colorazione.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il testo viene visualizzato con le dovute colorazioni.\\
\hline
\end{tabular}\\


\subsection{Imposta indentazione}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale tramite gui pu\`o decidere l'indentazione del testo.\\
Il sottosistema esterno ``Configurazione Sistema'' mediante il quale \`e possibile configurare la modalit\`a di indentazione.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema deve permettere di effettuare l'indentazione del testo tramite il click su un apposito pulsante o menù dela gui.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
Il testo indentato in base a un certo schema di indentazione solo quando l'utente lo richiede.\\
\hline
\textbf{Precondizioni:}\\
\hline
Deve essere presente un testo su cui applicare l'indentazione.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il testo viene visualizzato indentato secondo lo schema.\\
\hline
\end{tabular}\\

\section{Use Case Modifica file}
\label{Use Case Modifica file}

\begin{figure}[H]
\begin{center}
\includegraphics[scale=0.65]{UseCase/Modificafile.eps}
\caption{Use Case Modifica file} 
\end{center}
\end{figure}

\subsection{Edita file}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale tramite gui modifica il testo.\\
Il sottosistema esterno ``Configurazione Sistema'' mediante il quale \`e possibile impostare delle configurazioni riguardanti il testo.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema deve permettere di modificare il file come semplice file di testo.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
L'utente può modificare il testo a suo piacimento.\\
\hline
\textbf{Precondizioni:}\\
\hline
Deve essere presente un file da modificare.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il file modificato viene visualizzato.\\
\hline
\end{tabular}\\

\subsection{Visualizza Facilitazioni}
\noindent \begin{tabular}{|p{12,5cm}|}
\hline
\textbf{Attori coinvolti:}\\
\hline
L'utente finale può utilizzare facilitazioni durante la modifica del testo.\\
Il sottosistema esterno ``Configurazione Sistema'' mediante il quale \`e possibile abilitare/disabilitare le facilitazioni.\\
\hline
\textbf{Scopo e descrizione sintetica:}\\
\hline
Il sistema deve fornire tutta una serie di facilitazioni che permettano una più semplice modifica del file. Questo può comprendere per esempio autocompletamento, \textit{wizard}, visualizzazioni che permettano all'utente una più semplice modifica.\\
\hline
\textbf{Flusso di eventi:}\\
\hline
L'utente può scegliere se utilizzare o meno queste facilitazioni.\\
\hline
\textbf{Precondizioni:}\\
\hline
Deve essere presente un file su cui applicare le facilitazioni.\\
\hline
\textbf{Postcondizioni:}\\
\hline
Il file modificato viene visualizzato.\\
\hline
\end{tabular}\\